package com.southminority.ethnic.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.time.LocalDate;
import java.util.List;

/**
 * 机构介绍DTO
 * 
 * @author SouthMinority
 */
@Data
@Schema(description = "机构介绍DTO")
public class OrganizationDTO {

    @Schema(description = "机构名称")
    @NotBlank(message = "机构名称不能为空")
    private String name;

    @Schema(description = "副标题")
    private String subtitle;

    @Schema(description = "简要描述")
    private String description;

    @Schema(description = "详细内容")
    private String content;

    @Schema(description = "负责人")
    private String director;

    @Schema(description = "负责人职称")
    private String directorTitle;

    @Schema(description = "成立日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate establishmentDate;

    @Schema(description = "机构类型")
    private String organizationType;

    @Schema(description = "级别")
    private String level;

    @Schema(description = "封面图片")
    private String coverImage;

    @Schema(description = "相关图片URLs")
    private List<String> imageUrls;

    @Schema(description = "介绍视频URL")
    private String videoUrl;

    @Schema(description = "联系信息")
    private Object contactInfo;

    @Schema(description = "研究方向")
    private List<String> researchDirections;

    @Schema(description = "主要成就")
    private String achievements;

    @Schema(description = "设施设备")
    private String facilities;

    @Schema(description = "合作情况")
    private String cooperation;

    @Schema(description = "排序")
    private Integer sortOrder;

    @Schema(description = "是否首页展示")
    private Integer isFeatured;

    @Schema(description = "状态")
    @NotNull(message = "状态不能为空")
    private Integer status;
} 
